﻿using System;
namespace Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik {
    
    
    [global::Xtee.Core.Attributes.XmlTypeAttribute(Name="ToiminguTeavitus", Namespace="http://producers.etoimik.xtee.riik.ee/producer/etoimik", Target=typeof(ToiminguTeavitus))]
    public class ToiminguTeavitusSerializer : global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.StandardTeavitusSerializer {
        
        public ToiminguTeavitusSerializer(IToiminguTeavitus clazz) : 
                base(clazz) {
        }
        
        protected new IToiminguTeavitus clazz {
            get {
                return ((IToiminguTeavitus)(base.clazz));
            }
        }
        
        public override void WriteXml(global::Xtee.Core.IXteeXmlWriter Writer) {
            base.WriteXml(Writer);
            if (clazz.Toiming!=null) {
                Writer.WriteStartElement("Toiming");
                global::Xtee.Core.SerializationMetadata metaToiming = this.GetMetaData(clazz.Toiming);
                Writer.WriteTypeAttribute(metaToiming.TypeQualifiedName.Namespace, metaToiming.TypeQualifiedName.Name);
                metaToiming.NewSerializer(clazz.Toiming).WriteXml(Writer);
                Writer.WriteEndElement();
            }
            if (clazz.AsjaNR!=null) {
                Writer.WriteStartElement("AsjaNR");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.AsjaNR))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.AsjaObjektID!=null) {
                Writer.WriteStartElement("AsjaObjektID");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.AsjaObjektID))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.ToiminguNR!=null) {
                Writer.WriteStartElement("ToiminguNR");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.ToiminguNR))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.ToiminguObjektID!=null) {
                Writer.WriteStartElement("ToiminguObjektID");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.ToiminguObjektID))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.ToiminguVersID!=null) {
                Writer.WriteStartElement("ToiminguVersID");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.ToiminguVersID))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.ToiminguLiikKL!=null) {
                Writer.WriteStartElement("ToiminguLiikKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.ToiminguLiikKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.ToiminguLiikKLVaartus!=null) {
                Writer.WriteStartElement("ToiminguLiikKLVaartus");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.ToiminguLiikKLVaartus))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.ToiminguAlaLiikKL!=null) {
                Writer.WriteStartElement("ToiminguAlaLiikKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.ToiminguAlaLiikKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.ToiminguAlaLiikKLVaartus!=null) {
                Writer.WriteStartElement("ToiminguAlaLiikKLVaartus");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.ToiminguAlaLiikKLVaartus))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.ToiminguTegijaCSV!=null) {
                Writer.WriteStartElement("ToiminguTegijaCSV");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.ToiminguTegijaCSV))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.ToiminguTegijaAsutusObjektID!=null) {
                Writer.WriteStartElement("ToiminguTegijaAsutusObjektID");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.ToiminguTegijaAsutusObjektID))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.ToiminguTegijaAsutusCSV!=null) {
                Writer.WriteStartElement("ToiminguTegijaAsutusCSV");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.ToiminguTegijaAsutusCSV))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.ToiminguOsalisedCSV!=null) {
                Writer.WriteStartElement("ToiminguOsalisedCSV");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.ToiminguOsalisedCSV))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.ToiminguMenetluseMenetlevAsutusObjektID!=null) {
                Writer.WriteStartElement("ToiminguMenetluseMenetlevAsutusObjektID");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.ToiminguMenetluseMenetlevAsutusObjektID))).ToString());
                Writer.WriteEndElement();
            }
        }
        
        public override void ReadXml(global::Xtee.Core.IXteeXmlReader Reader) {
            base.ReadXml(Reader);
            if (Reader.LocalName=="Toiming") {
                if ((Reader.IsElementNil() == false)) {
                    global::Xtee.Core.SerializationMetadata metaToiming = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiming>(Reader, "Toiming", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                    clazz.Toiming = metaToiming.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiming>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("Toiming");
                        metaToiming.NewSerializer(clazz.Toiming).ReadXml(Reader);
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="AsjaNR") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.AsjaNR = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("AsjaNR")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="AsjaObjektID") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.AsjaObjektID = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("AsjaObjektID")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="ToiminguNR") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.ToiminguNR = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("ToiminguNR")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="ToiminguObjektID") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>ToiminguTeavitus>ToiminguObjektID");
                }
                clazz.ToiminguObjektID = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("ToiminguObjektID")).Value;
            }
            if (Reader.LocalName=="ToiminguVersID") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>ToiminguTeavitus>ToiminguVersID");
                }
                clazz.ToiminguVersID = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("ToiminguVersID")).Value;
            }
            if (Reader.LocalName=="ToiminguLiikKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.ToiminguLiikKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("ToiminguLiikKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="ToiminguLiikKLVaartus") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.ToiminguLiikKLVaartus = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("ToiminguLiikKLVaartus")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="ToiminguAlaLiikKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.ToiminguAlaLiikKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("ToiminguAlaLiikKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="ToiminguAlaLiikKLVaartus") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.ToiminguAlaLiikKLVaartus = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("ToiminguAlaLiikKLVaartus")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="ToiminguTegijaCSV") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.ToiminguTegijaCSV = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("ToiminguTegijaCSV")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="ToiminguTegijaAsutusObjektID") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.ToiminguTegijaAsutusObjektID = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("ToiminguTegijaAsutusObjektID")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="ToiminguTegijaAsutusCSV") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.ToiminguTegijaAsutusCSV = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("ToiminguTegijaAsutusCSV")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="ToiminguOsalisedCSV") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.ToiminguOsalisedCSV = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("ToiminguOsalisedCSV")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="ToiminguMenetluseMenetlevAsutusObjektID") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.ToiminguMenetluseMenetlevAsutusObjektID = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("ToiminguMenetluseMenetlevAsutusObjektID")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
        }
    }
}
